package team.hyznrj.studentsys.service;

import team.hyznrj.studentsys.dto.ResultDto;
import team.hyznrj.studentsys.form.AccountForm;
import team.hyznrj.studentsys.form.RegisterForm;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author ReMidDream
 * @date 2018-04-23 15:53
 **/
public interface AccountInfoService {

    /**
     *  用户登录
     * @param accountForm 帐号 和 未加密的密码
     * @return 操作结果
     */
    ResultDto<?> login(AccountForm accountForm, HttpServletResponse response);

    /**
     * 用户登出
     * @return 操作结果
     */
    ResultDto<?> logout(HttpServletRequest request, HttpServletResponse response);

    /**
     * 用户注册
     * @param registerForm 注册信息
     * @return 操作结果
     */
    ResultDto<?> registerAccount(RegisterForm registerForm);

    /**
     * 删除用户
     * @param accountIds 用户IDs
     * @return 操作结果
     */
    ResultDto deleteAccount(List<String> accountIds);

    /**
     * 查询 用户权限内 能查询的 所有用户
     * @param token 凭证
     * @return 操作结果
     */
    ResultDto<?> findByAccountInfo(String token);

    ResultDto<?> updateAccountInfo(AccountForm accountForm);
}
